package com.weaving.monitor.dto;

import lombok.Data;
import java.util.Date;

/**
 * 机器状态数据传输对象
 * 
 * 功能说明：
 * 1. 用于在服务层和控制器层之间传输机器状态数据
 * 2. 隐藏实体对象的内部结构，提供统一的数据格式
 * 3. 专门用于机器状态相关的API接口
 * 
 * 注解说明：
 * - @Data: Lombok注解，自动生成getter、setter、toString、equals、hashCode方法
 * 
 * 字段说明：
 * - machineNumber: 机器编号，用于标识特定的机器
 * - model: 机器型号，如KS3、KS4等
 * - fabricLength: 当前布长（米），表示已生产的布料长度
 * - operator: 操作员姓名，负责该机器的操作
 * - speed: 当前车速（转/分钟），表示机器的运行速度
 * - l1Pattern: L1梳栉的花型名称
 * - l1Remaining: L1梳栉剩余工作时间（小时）
 * - l2Pattern: L2梳栉的花型名称
 * - l2Remaining: L2梳栉剩余工作时间（小时）
 * - l3Pattern: L3梳栉的花型名称
 * - l3Remaining: L3梳栉剩余工作时间（小时）
 * - l4Pattern: L4梳栉的花型名称
 * - l4Remaining: L4梳栉剩余工作时间（小时）
 * - nextPlan: 下一轮生产计划
 * - status: 机器状态，可能的值：RUNNING、STOPPED、MAINTENANCE、ERROR
 * - lastUpdated: 最后更新时间
 * 
 * 使用场景：
 * - 首页机器状态展示
 * - 机器状态API接口返回
 * - 前端页面数据绑定
 * 
 * @author 系统开发团队
 * @version 1.0
 * @since 2024-01-01
 */
@Data
public class MachineStatusDto {
    /** 机器编号，用于标识特定的机器 */
    private Integer machineNumber;
    
    /** 机器型号，如KS3、KS4等 */
    private String model;
    
    /** 当前布长（米），表示已生产的布料长度 */
    private Double fabricLength;
    
    /** 操作员姓名，负责该机器的操作 */
    private String operator;
    
    /** 当前生产物料类型名称 */
    private String currentMatTypeName;
    
    /** 当前车速（转/分钟），表示机器的运行速度 */
    private Integer speed;
    
    /** L1梳栉的花型名称 */
    private String l1Pattern;
    
    /** L1梳栉剩余工作时间（小时） */
    private Double l1Remaining;
    
    /** L2梳栉的花型名称 */
    private String l2Pattern;
    
    /** L2梳栉剩余工作时间（小时） */
    private Double l2Remaining;
    
    /** L3梳栉的花型名称 */
    private String l3Pattern;
    
    /** L3梳栉剩余工作时间（小时） */
    private Double l3Remaining;
    
    /** L4梳栉的花型名称 */
    private String l4Pattern;
    
    /** L4梳栉剩余工作时间（小时） */
    private Double l4Remaining;
    
    /** 下一轮生产计划 */
    private String nextPlan;
    
    /** 
     * 机器状态
     * RUNNING: 运行中
     * STOPPED: 已停止
     * MAINTENANCE: 维护中
     * ERROR: 故障
     */
    private String status;
    
    /** 最后更新时间 */
    private Date lastUpdated;
} 